﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Atomic.Common.Validators;

namespace Atomic.Common
{
    public interface IError
    {
        /// <summary>
        /// 获取业务产生的错误信息，只保留最后一次产生的错误信息，之前的信息会被新的错误覆盖
        /// </summary>
        /// <returns></returns>
        ErrorResult GetError();
    }

    public abstract class ErrorImpl : IError
    {
        /// <summary>
        /// 产生错误信息最后一次保存结果
        /// </summary>
        protected ErrorResult Error { set; get; }
        /// <summary>
        /// 数据验证保存结果
        /// </summary>
        protected ValidatedResult VResult { set; get; }

        public ErrorResult GetError()
        {
            return this.Error;
        }
    }

    public class ErrorResult
    {
        public ErrorResult()
        {
            this.Message = string.Empty;
        }
        /// <summary>
        /// 产生的错误信息
        /// </summary>
        public string Message { set; get; }
    }
}
